<html>
<head><meta charset="utf-8"><title>meeting 2021-02-09 · project-const-generics · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/index.html">project-const-generics</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html">meeting 2021-02-09</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="225707385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225707385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225707385">(Feb 09 2021 at 15:35)</a>:</h4>
<p>the meeting starts in 10 minutes in this topic</p>



<a name="225707652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225707652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225707652">(Feb 09 2021 at 15:36)</a>:</h4>
<p>prepared some notes for this meeting: <a href="https://hackmd.io/DqXhFwzsQDK7QyTYTWz5fQ">https://hackmd.io/DqXhFwzsQDK7QyTYTWz5fQ</a></p>
<p>intend to add any results in that doc and add it to <a href="https://github.com/rust-lang/project-const-generics">https://github.com/rust-lang/project-const-generics</a> afterwards</p>



<a name="225708742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225708742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225708742">(Feb 09 2021 at 15:43)</a>:</h4>
<p>wave</p>



<a name="225708749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225708749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225708749">(Feb 09 2021 at 15:43)</a>:</h4>
<p>wave</p>



<a name="225708933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225708933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225708933">(Feb 09 2021 at 15:44)</a>:</h4>
<p><span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="225709093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709093">(Feb 09 2021 at 15:45)</a>:</h4>
<p>making some popcorn :)</p>



<a name="225709099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709099">(Feb 09 2021 at 15:45)</a>:</h4>
<p>Hi!</p>



<a name="225709398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709398">(Feb 09 2021 at 15:47)</a>:</h4>
<p>in case it wasn't clear, I meant that quite literally :)</p>



<a name="225709408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709408">(Feb 09 2021 at 15:47)</a>:</h4>
<p>ok, I'm here now, snack in hand <span aria-label="popcorn" class="emoji emoji-1f37f" role="img" title="popcorn">:popcorn:</span></p>



<a name="225709436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709436">(Feb 09 2021 at 15:47)</a>:</h4>
<p>nice, then I guess let's start then^^</p>



<a name="225709560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709560">(Feb 09 2021 at 15:48)</a>:</h4>
<p>Mostly copying the notes (<a href="https://hackmd.io/DqXhFwzsQDK7QyTYTWz5fQ">https://hackmd.io/DqXhFwzsQDK7QyTYTWz5fQ</a>)</p>



<a name="225709618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709618">(Feb 09 2021 at 15:48)</a>:</h4>
<p>skimming</p>



<a name="225709625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709625">(Feb 09 2021 at 15:48)</a>:</h4>
<p>but yes, copy over</p>



<a name="225709677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709677">(Feb 09 2021 at 15:49)</a>:</h4>
<blockquote>
<p>Anonymous constants currently have all the generic parameters of their parent, even if they are unused inside of the constant.</p>
</blockquote>



<a name="225709694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709694">(Feb 09 2021 at 15:49)</a>:</h4>
<p>can you define the word "currently" here :)</p>



<a name="225709709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709709">(Feb 09 2021 at 15:49)</a>:</h4>
<p>with the current implementation ^^</p>



<a name="225709721"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709721" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709721">(Feb 09 2021 at 15:49)</a>:</h4>
<p>even that doesn't seem precise enough</p>



<a name="225709732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709732">(Feb 09 2021 at 15:49)</a>:</h4>
<p>don't we have different modes?</p>



<a name="225709744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709744">(Feb 09 2021 at 15:49)</a>:</h4>
<p>or well, with <code>feature(lazy_normalization_consts)</code> or <code>feature(const_generics)</code></p>



<a name="225709746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709746">(Feb 09 2021 at 15:49)</a>:</h4>
<p>e.g., "This breaks some programs, some of which already compile on stable."</p>



<a name="225709756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709756">(Feb 09 2021 at 15:49)</a>:</h4>
<p>this seems to conflict with "currently"</p>



<a name="225709760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709760">(Feb 09 2021 at 15:49)</a>:</h4>
<p>ok</p>



<a name="225709801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709801">(Feb 09 2021 at 15:49)</a>:</h4>
<p>on stable we do not supply the parent generics at all</p>



<a name="225709900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709900">(Feb 09 2021 at 15:50)</a>:</h4>
<p>By parent we mean "function" or <del>"class"</del> "struct" or "method" or some other cases as well?</p>



<a name="225709922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709922">(Feb 09 2021 at 15:50)</a>:</h4>
<p>right, I kind of figured this is what you meant (based on prior conversation), but I think we have to find some ways to speak very precisely about what we mean</p>



<a name="225709997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225709997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225709997">(Feb 09 2021 at 15:50)</a>:</h4>
<p><span class="user-mention silent" data-user-id="256313">Hameer Abbasi</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225709900">said</a>:</p>
<blockquote>
<p>By parent we mean "function" or <del>"class"</del> "struct" or "method" or some other cases as well?</p>
</blockquote>
<p>traits as well</p>



<a name="225710069"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710069" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710069">(Feb 09 2021 at 15:51)</a>:</h4>
<p>I've noticed that terms like "currently" or "in the future" -- which I use constantly --  can get quite confusing</p>



<a name="225710112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710112">(Feb 09 2021 at 15:51)</a>:</h4>
<p>hmm, I want to use currently here to mean with <code>feature(const_generics)</code></p>



<a name="225710116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710116">(Feb 09 2021 at 15:51)</a>:</h4>
<p>anyway, I guess we can distinguish "stable" vs "const-generics"</p>



<a name="225710132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710132">(Feb 09 2021 at 15:51)</a>:</h4>
<p>Best give modes and commit hash maybe? <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="225710152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710152">(Feb 09 2021 at 15:51)</a>:</h4>
<p>ok, let's assume that's the "baseline"</p>



<a name="225710184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710184">(Feb 09 2021 at 15:51)</a>:</h4>
<p>(using const-generics feature gate)</p>



<a name="225710222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710222">(Feb 09 2021 at 15:52)</a>:</h4>
<p>/me reads the imp't stuff :)</p>



<a name="225710352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710352">(Feb 09 2021 at 15:52)</a>:</h4>
<p>What does "anon const subst" mean?</p>



<a name="225710357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710357">(Feb 09 2021 at 15:53)</a>:</h4>
<blockquote>
<p>what happens if we need to look at the anon const subst before a hard limit? I think this is unlikely, but would prevent us from using this option. How likely is this?</p>
</blockquote>



<a name="225710403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710403">(Feb 09 2021 at 15:53)</a>:</h4>
<p>anonymous constants are internally represented as <code>ty::ConstKInd::Unevaluated(anon_const_def_id, substs)</code></p>



<a name="225710455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710455">(Feb 09 2021 at 15:53)</a>:</h4>
<p>where <code>substs</code> is the list of all generic parameters available to the constant</p>



<a name="225710467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710467">(Feb 09 2021 at 15:53)</a>:</h4>
<blockquote>
<p>will pull in too many parameters, still prevent some programs from compiling</p>
</blockquote>



<a name="225710528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710528">(Feb 09 2021 at 15:54)</a>:</h4>
<p>can you elaborate on this?</p>



<a name="225710580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710580">(Feb 09 2021 at 15:54)</a>:</h4>
<p>give me a sec</p>



<a name="225710827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710827">(Feb 09 2021 at 15:56)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="cp">#![feature(const_generics)]</span><span class="w"></span>
<span class="k">pub</span><span class="w"> </span><span class="k">trait</span><span class="w"> </span><span class="n">Trait</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>

<span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="n">T</span><span class="p">,</span><span class="w"> </span><span class="n">U</span><span class="o">&gt;</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="p">[</span><span class="n">T</span><span class="p">;</span><span class="w"> </span><span class="n">std</span>::<span class="n">mem</span>::<span class="n">size_of</span>::<span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">()]</span><span class="w"></span>
<span class="k">where</span><span class="w"></span>
<span class="w">    </span><span class="n">T</span>: <span class="nc">Trait</span><span class="o">&lt;</span><span class="n">U</span><span class="o">&gt;</span><span class="w"></span>
<span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="c1">// ...</span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="225710849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710849">(Feb 09 2021 at 15:56)</a>:</h4>
<p>the anonymous constant explicitly mentions <code>T</code></p>



<a name="225710932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710932">(Feb 09 2021 at 15:56)</a>:</h4>
<p>and <code>T: Trait&lt;U&gt;</code> means that we may pull in <code>U</code> as well, so we also want to consider that one used</p>



<a name="225710959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710959">(Feb 09 2021 at 15:56)</a>:</h4>
<p>even though it doesn't actually get used in the constant</p>



<a name="225710997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225710997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225710997">(Feb 09 2021 at 15:57)</a>:</h4>
<p>nod</p>



<a name="225711000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711000">(Feb 09 2021 at 15:57)</a>:</h4>
<p>ok</p>



<a name="225711200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711200">(Feb 09 2021 at 15:58)</a>:</h4>
<p>the same applies to predicates in general I guess</p>



<a name="225711202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711202">(Feb 09 2021 at 15:58)</a>:</h4>
<p>In this scenario, <code>foo</code> is the parent?</p>



<a name="225711234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711234">(Feb 09 2021 at 15:58)</a>:</h4>
<p>but it matters less</p>



<a name="225711252"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711252" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711252">(Feb 09 2021 at 15:58)</a>:</h4>
<p>i.e., you might have <code>T: Eq</code> and you don't need that either</p>



<a name="225711294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711294">(Feb 09 2021 at 15:59)</a>:</h4>
<p>yeah, including unused predicates is fine i think</p>



<a name="225711383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711383">(Feb 09 2021 at 15:59)</a>:</h4>
<p>still, you really only need those things that you need to evaluate the expression</p>



<a name="225711478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711478">(Feb 09 2021 at 16:00)</a>:</h4>
<p>it feels like the parameters are a bit of a red herring, in the sense that the real trick is knowing you don't need <code>T: Trait&lt;U&gt;</code></p>



<a name="225711484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711484">(Feb 09 2021 at 16:00)</a>:</h4>
<p>anyway, let me read on</p>



<a name="225711731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711731">(Feb 09 2021 at 16:02)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225711478">said</a>:</p>
<blockquote>
<p>it feels like the parameters are a bit of a red herring, in the sense that the real trick is knowing you don't need <code>T: Trait&lt;U&gt;</code></p>
</blockquote>
<p>we want to avoid pulling in more params than needed, even if the underlying reason why do so is the predicate ^^</p>



<a name="225711804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711804">(Feb 09 2021 at 16:02)</a>:</h4>
<p>right</p>



<a name="225711807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711807">(Feb 09 2021 at 16:02)</a>:</h4>
<blockquote>
<p>what happens if we need to look at the anon const subst before a hard limit? I think this is unlikely, but would prevent us from using this option. How likely is this?</p>
</blockquote>



<a name="225711825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711825">(Feb 09 2021 at 16:02)</a>:</h4>
<p>can you elaborate on what this means?</p>



<a name="225711862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711862">(Feb 09 2021 at 16:02)</a>:</h4>
<p>we're talking about the second approach here</p>



<a name="225711900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711900">(Feb 09 2021 at 16:02)</a>:</h4>
<blockquote>
<p>it feels like the parameters are a bit of a red herring, in the sense that the real trick is knowing you don't need T: Trait&lt;U&gt;</p>
</blockquote>
<p>Can one do that by pruning everything not in <code>T</code> as well in this scenario? Or in general, include everything the <code>const</code> needs; as well as their dependencies.</p>
<blockquote>
<p>we want to avoid pulling in more params than needed, even if the underlying reason why do so is the predicate ^^</p>
</blockquote>
<p>Could we possibly lazily evaluate, pulling in what we need?</p>



<a name="225711975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225711975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225711975">(Feb 09 2021 at 16:03)</a>:</h4>
<p>where we start out by "using" all params and filtering out all unused ones ones we've typechecked the constant</p>



<a name="225712049"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712049" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712049">(Feb 09 2021 at 16:03)</a>:</h4>
<p><span class="user-mention silent" data-user-id="256313">Hameer Abbasi</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225711900">said</a>:</p>
<blockquote>
<blockquote>
<p>it feels like the parameters are a bit of a red herring, in the sense that the real trick is knowing you don't need T: Trait&lt;U&gt;</p>
</blockquote>
<p>Can one do that by pruning everything not in <code>T</code> as well in this scenario? Or in general, include everything the <code>const</code> needs; as well as their dependencies.</p>
<blockquote>
<p>we want to avoid pulling in more params than needed, even if the underlying reason why do so is the predicate ^^</p>
</blockquote>
<p>Could we possibly lazily evaluate, pulling in what we need?</p>
</blockquote>
<p>that's the whole issue, how do we know what the constant needs</p>



<a name="225712152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712152">(Feb 09 2021 at 16:04)</a>:</h4>
<p>so we can only do this filtering after running <code>typeck</code> for the constant</p>



<a name="225712177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712177">(Feb 09 2021 at 16:04)</a>:</h4>
<p>running <code>typeck</code> depends on <code>crate_variances</code> for example</p>



<a name="225712227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712227">(Feb 09 2021 at 16:04)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225711862">said</a>:</p>
<blockquote>
<p>we're talking about the second approach here</p>
</blockquote>
<p>i got that</p>



<a name="225712250"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712250" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712250">(Feb 09 2021 at 16:04)</a>:</h4>
<p>so if we looked at the substs of anonymous constants in a query used by <code>crate_variances</code></p>



<a name="225712270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712270">(Feb 09 2021 at 16:05)</a>:</h4>
<p>I don't quite know what the "hard limit" means -- is it referring to cycles?</p>



<a name="225712328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712328">(Feb 09 2021 at 16:05)</a>:</h4>
<p>we either get a cycle error when trying to remove the unused ones or also consider unused ones</p>



<a name="225712395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712395">(Feb 09 2021 at 16:05)</a>:</h4>
<p>"hard limit" means that we wouldn't be able to avoid cycle errors, yeah</p>



<a name="225712480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712480">(Feb 09 2021 at 16:06)</a>:</h4>
<blockquote>
<p>unused in the mir of the constant.</p>
</blockquote>



<a name="225712488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712488">(Feb 09 2021 at 16:06)</a>:</h4>
<p>what does <em>this</em> mean :)</p>



<a name="225712521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712521">(Feb 09 2021 at 16:06)</a>:</h4>
<p>^^</p>



<a name="225712612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712612">(Feb 09 2021 at 16:07)</a>:</h4>
<p>to deal with generic anymous constants we build an <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/const_evaluatable/struct.AbstractConst.html">https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/const_evaluatable/struct.AbstractConst.html</a> for them</p>



<a name="225712666"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712666" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712666">(Feb 09 2021 at 16:07)</a>:</h4>
<blockquote>
<p>will we encounter cycles where type check needs to look at the anon const subst? I think this is unlikely, but would prevent us from using this option. How likely is this?</p>
</blockquote>



<a name="225712679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712679">(Feb 09 2021 at 16:07)</a>:</h4>
<p>accurate rewrite?</p>



<a name="225712781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712781">(Feb 09 2021 at 16:08)</a>:</h4>
<p>that's a new type for me, interesting</p>



<a name="225712791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712791">(Feb 09 2021 at 16:08)</a>:</h4>
<p>don't think so, typeck needs to look at the anon const substs</p>



<a name="225712846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712846">(Feb 09 2021 at 16:08)</a>:</h4>
<p>does "where typechecking the anon const relies on a query looking at its substs" make sense to you?</p>



<a name="225712895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712895">(Feb 09 2021 at 16:09)</a>:</h4>
<p>yes, but I'm confused how type check can look at the substs when they are not known until MIR is constructed</p>



<a name="225712911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712911">(Feb 09 2021 at 16:09)</a>:</h4>
<p>because it starts with a "maximal" assumption?</p>



<a name="225712943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712943">(Feb 09 2021 at 16:09)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225712395">said</a>:</p>
<blockquote>
<p>"hard limit" means that we wouldn't be able to avoid cycle errors, yeah</p>
</blockquote>
<p>Is there a way to traverse the tree and filter out cycles before starting this process?</p>



<a name="225712966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712966">(Feb 09 2021 at 16:09)</a>:</h4>
<p>when typechecking the anon const itself it has all substs, even the unused ones</p>



<a name="225712999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225712999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225712999">(Feb 09 2021 at 16:09)</a>:</h4>
<p>(Side note, I feel like there's something missing in our query system, it'd be nice if it could kind of express these concepts; not sure how that would work really)</p>



<a name="225713016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713016">(Feb 09 2021 at 16:09)</a>:</h4>
<p>ok, so it's more accurate to say: type check relies on the <em>maximal substs</em></p>



<a name="225713072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713072">(Feb 09 2021 at 16:10)</a>:</h4>
<p>and the question is whether anything needs to rely on the <em>final substs</em> before MIR is constructed</p>



<a name="225713134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713134">(Feb 09 2021 at 16:10)</a>:</h4>
<p>yeah, before MIR <em>for the anonymous constant itself</em> is constructed</p>



<a name="225713154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713154">(Feb 09 2021 at 16:10)</a>:</h4>
<p>right</p>



<a name="225713170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713170">(Feb 09 2021 at 16:10)</a>:</h4>
<p>can you rewrite to that?</p>



<a name="225713200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713200">(Feb 09 2021 at 16:11)</a>:</h4>
<p>this whole problem is specific to <em>anonymous constants</em> because <em>named ones</em> have explicitly declared generics (or maybe we forbid generics altogether), correct?</p>



<a name="225713287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713287">(Feb 09 2021 at 16:11)</a>:</h4>
<p>the only other generic constants rn are associated constants</p>



<a name="225713305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713305">(Feb 09 2021 at 16:11)</a>:</h4>
<p>which also inherit from their parent</p>



<a name="225713409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713409">(Feb 09 2021 at 16:12)</a>:</h4>
<p>ok</p>



<a name="225713453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713453">(Feb 09 2021 at 16:12)</a>:</h4>
<p><span class="user-mention silent" data-user-id="256313">Hameer Abbasi</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225712943">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225712395">said</a>:</p>
<blockquote>
<p>"hard limit" means that we wouldn't be able to avoid cycle errors, yeah</p>
</blockquote>
<p>Is there a way to traverse the tree and filter out cycles before starting this process?</p>
</blockquote>
<p>in a sense, that's what we're trying to figure out :)</p>



<a name="225713478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713478">(Feb 09 2021 at 16:12)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225713287">said</a>:</p>
<blockquote>
<p>the only other generic constants rn are associated constants</p>
</blockquote>
<p>i think we want to consider all generic params used in this case</p>



<a name="225713487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713487">(Feb 09 2021 at 16:13)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225712612">said</a>:</p>
<blockquote>
<p>to deal with generic anymous constants we build an <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/const_evaluatable/struct.AbstractConst.html">https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/const_evaluatable/struct.AbstractConst.html</a> for them</p>
</blockquote>
<p>I don't understand the role of this type</p>



<a name="225713508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713508">(Feb 09 2021 at 16:13)</a>:</h4>
<p>because i didn't finish my explanation</p>



<a name="225713538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713538">(Feb 09 2021 at 16:13)</a>:</h4>
<p>too much to do at once rn <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="225713625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713625">(Feb 09 2021 at 16:14)</a>:</h4>
<p>builing <code>AbstractConst</code>s uses unoptimized mir so that we don't depend on any optimizations in typeck</p>



<a name="225713814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713814">(Feb 09 2021 at 16:15)</a>:</h4>
<p>and we can - and do on stable for the <code>const_evaluatable_unchecked</code> future compat warning - look at the same mir (or the <code>AbstractConst</code>) to figure out which generic params are used</p>



<a name="225713837"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713837" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713837">(Feb 09 2021 at 16:15)</a>:</h4>
<p>/me apoligizes profusely for all his n00b suggestions.</p>



<a name="225713840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713840">(Feb 09 2021 at 16:15)</a>:</h4>
<p>so to build an <code>AbstractConst</code>, we walk over MIR and construct a tree from it?</p>



<a name="225713853"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713853" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713853">(Feb 09 2021 at 16:15)</a>:</h4>
<p>yeah</p>



<a name="225713865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713865">(Feb 09 2021 at 16:15)</a>:</h4>
<p>interesting</p>



<a name="225713869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713869">(Feb 09 2021 at 16:15)</a>:</h4>
<p>that seems suboptimal :)</p>



<a name="225713874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713874">(Feb 09 2021 at 16:15)</a>:</h4>
<p>THIR might be better</p>



<a name="225713881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713881">(Feb 09 2021 at 16:15)</a>:</h4>
<p>but it doesn't change anything fundamental</p>



<a name="225713910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225713910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225713910">(Feb 09 2021 at 16:15)</a>:</h4>
<p>yeah, also thought about that after reading your MCP</p>



<a name="225714001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714001">(Feb 09 2021 at 16:16)</a>:</h4>
<p>but that would be more annoying cause we never return THIR from a query afaik</p>



<a name="225714033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714033">(Feb 09 2021 at 16:16)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225713814">said</a>:</p>
<blockquote>
<p>and we can - and do on stable for the <code>const_evaluatable_unchecked</code> future compat warning - look at the same mir (or the <code>AbstractConst</code>) to figure out which generic params are used</p>
</blockquote>
<p>but I'd like you to elaborate a bit on what we mean by <em>used</em></p>



<a name="225714035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714035">(Feb 09 2021 at 16:16)</a>:</h4>
<p>but definitely not impossible <span aria-label="shrug" class="emoji emoji-1f937" role="img" title="shrug">:shrug:</span></p>



<a name="225714100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714100">(Feb 09 2021 at 16:16)</a>:</h4>
<p>used == mentioned somewhere</p>



<a name="225714150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714150">(Feb 09 2021 at 16:17)</a>:</h4>
<p>while looking into closures probably, because these also capture everything</p>



<a name="225714212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714212">(Feb 09 2021 at 16:17)</a>:</h4>
<p>so</p>



<a name="225714237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714237">(Feb 09 2021 at 16:17)</a>:</h4>
<p>sorry to be dense but</p>



<a name="225714346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714346">(Feb 09 2021 at 16:17)</a>:</h4>
<p>ok, mentioned somewhere means.. appears in the type parameters for a function</p>



<a name="225714424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714424">(Feb 09 2021 at 16:18)</a>:</h4>
<p>yeah, or in a type</p>



<a name="225714458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714458">(Feb 09 2021 at 16:18)</a>:</h4>
<p>or any other place where types are directly embedded in the MIR</p>



<a name="225714482"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714482" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714482">(Feb 09 2021 at 16:18)</a>:</h4>
<p>what about lifetime parameters?</p>



<a name="225714568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714568">(Feb 09 2021 at 16:18)</a>:</h4>
<p>currently we do the same, we can probably always ignore them?</p>



<a name="225714599"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714599" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714599">(Feb 09 2021 at 16:18)</a>:</h4>
<p>Do lifetimes matter in a <code>const</code> context?</p>



<a name="225714654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714654">(Feb 09 2021 at 16:18)</a>:</h4>
<p>afaik they don't</p>



<a name="225714875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714875">(Feb 09 2021 at 16:20)</a>:</h4>
<p>I'm bringing it up because</p>



<a name="225714891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714891">(Feb 09 2021 at 16:20)</a>:</h4>
<p>the lifetimes in generated MIR are largely erased</p>



<a name="225714899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714899">(Feb 09 2021 at 16:20)</a>:</h4>
<p>I don't know how much it matters, just thinking about different angles</p>



<a name="225714931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225714931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225714931">(Feb 09 2021 at 16:20)</a>:</h4>
<p>I don't think it matters a lot</p>



<a name="225715090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715090">(Feb 09 2021 at 16:21)</a>:</h4>
<p>worth noting for later but defer it for now</p>



<a name="225715098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715098">(Feb 09 2021 at 16:21)</a>:</h4>
<p>considering that we ignore anon const subst when computing variances</p>



<a name="225715101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715101">(Feb 09 2021 at 16:21)</a>:</h4>
<p>the reason I was pressing on this</p>



<a name="225715123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715123">(Feb 09 2021 at 16:21)</a>:</h4>
<p>is that I was trying to think whether there might be predicates that are required for well-formedness somehow</p>



<a name="225715129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715129">(Feb 09 2021 at 16:21)</a>:</h4>
<p>it would be unsound if they mattered, wouldn't it</p>



<a name="225715152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715152">(Feb 09 2021 at 16:22)</a>:</h4>
<p>but which don't appear <em>directly</em> in the MIR</p>



<a name="225715177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715177">(Feb 09 2021 at 16:22)</a>:</h4>
<p>as an example</p>



<a name="225715199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715199">(Feb 09 2021 at 16:22)</a>:</h4>
<p>I think the answer presently is no</p>



<a name="225715214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715214">(Feb 09 2021 at 16:22)</a>:</h4>
<p>but there are future extensions where you could imagine it</p>



<a name="225715245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715245">(Feb 09 2021 at 16:22)</a>:</h4>
<p>eg., if you could do <code>const fn foo&lt;T&gt;() where exists&lt;U&gt; { T: Trait&lt;U&gt; } { .. }</code></p>



<a name="225715288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715288">(Feb 09 2021 at 16:22)</a>:</h4>
<p>(which chalk could definitely express)</p>



<a name="225715354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715354">(Feb 09 2021 at 16:23)</a>:</h4>
<p>but I think that because we don't have <code>exists</code> quantifiers except at the fn level, you would presently have to name the <code>U</code> type</p>



<a name="225715717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715717">(Feb 09 2021 at 16:25)</a>:</h4>
<p>ok</p>



<a name="225715807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715807">(Feb 09 2021 at 16:26)</a>:</h4>
<p>hm</p>



<a name="225715824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715824">(Feb 09 2021 at 16:26)</a>:</h4>
<p>so next question -- <span class="user-mention" data-user-id="216206">@lcnr</span> -- I'm a bit surprised that you think cycles are unlikely</p>



<a name="225715852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715852">(Feb 09 2021 at 16:26)</a>:</h4>
<p>there's actually another thing here i'm thinking about</p>



<a name="225715990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225715990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225715990">(Feb 09 2021 at 16:27)</a>:</h4>
<p>well scratch that, I'll circle back to it</p>



<a name="225716009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716009">(Feb 09 2021 at 16:27)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225715824">said</a>:</p>
<blockquote>
<p>so next question -- <span class="user-mention silent" data-user-id="216206">lcnr</span> -- I'm a bit surprised that you think cycles are unlikely</p>
</blockquote>
<p>on this point</p>



<a name="225716042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716042">(Feb 09 2021 at 16:27)</a>:</h4>
<p>I guess I just expect that there will be generic queries, such as the trait solver or something, that want to get the predicates or whatever of a constant</p>



<a name="225716065"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716065" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716065">(Feb 09 2021 at 16:27)</a>:</h4>
<p>and that this will wind up requesting the substs</p>



<a name="225716073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716073">(Feb 09 2021 at 16:28)</a>:</h4>
<p>but maybe that's not the case</p>



<a name="225716233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716233">(Feb 09 2021 at 16:28)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225715852">said</a>:</p>
<blockquote>
<p>there's actually another thing here i'm thinking about</p>
</blockquote>
<p>(just so I don't forget, I'm thinking about how there are other times where it's useful to know "which parts of the environment were actually used")</p>



<a name="225716254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716254">(Feb 09 2021 at 16:28)</a>:</h4>
<p>(that's something chalk could conceivably track)</p>



<a name="225716264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716264">(Feb 09 2021 at 16:28)</a>:</h4>
<p>(it would affect e.g. caching)</p>



<a name="225716523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716523">(Feb 09 2021 at 16:30)</a>:</h4>
<p>i've experimented a bit with the second approach and all places which caused cycles didn't actually need the const substs</p>



<a name="225716527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716527">(Feb 09 2021 at 16:30)</a>:</h4>
<p>so there is maybe a world where instead of "scraping MIR"</p>



<a name="225716542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716542">(Feb 09 2021 at 16:30)</a>:</h4>
<p>we run the type check</p>



<a name="225716553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716553">(Feb 09 2021 at 16:30)</a>:</h4>
<p>i never got far enough to say this conclusively though</p>



<a name="225716569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716569">(Feb 09 2021 at 16:30)</a>:</h4>
<p>and type check tracks which predicates got used</p>



<a name="225716598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716598">(Feb 09 2021 at 16:30)</a>:</h4>
<p>so...</p>



<a name="225716643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716643">(Feb 09 2021 at 16:31)</a>:</h4>
<p>...remind me again, we can't type check anonymous constants in isolation, we check them like closures?</p>



<a name="225716653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716653">(Feb 09 2021 at 16:31)</a>:</h4>
<p>why is this?</p>



<a name="225716661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716661">(Feb 09 2021 at 16:31)</a>:</h4>
<p>how do they interact re: type inference</p>



<a name="225716670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716670">(Feb 09 2021 at 16:31)</a>:</h4>
<p>we typeck anonymous constants on their own</p>



<a name="225716697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716697">(Feb 09 2021 at 16:31)</a>:</h4>
<p>we infer their expected type from where they are used</p>



<a name="225716728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716728">(Feb 09 2021 at 16:31)</a>:</h4>
<p>and use that when typechecking the constant on its own</p>



<a name="225716800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716800">(Feb 09 2021 at 16:32)</a>:</h4>
<p>give me an example</p>



<a name="225716833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716833">(Feb 09 2021 at 16:32)</a>:</h4>
<p>I think I know what you mean but i'd like to see some of the painful parts:)</p>



<a name="225716889"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225716889" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225716889">(Feb 09 2021 at 16:32)</a>:</h4>
<p>so</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">fn</span> <span class="nf">foo</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="fm">vec!</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">].</span><span class="n">into_iter</span><span class="p">().</span><span class="n">array_windows</span>::<span class="o">&lt;</span><span class="p">{</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="p">}</span><span class="o">&gt;</span><span class="p">();</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="225717011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717011">(Feb 09 2021 at 16:33)</a>:</h4>
<p>we typeck <code>foo</code> and figure out the type of the generic param of <code>array_windows</code>, which is <code>usize</code> in this case</p>



<a name="225717044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717044">(Feb 09 2021 at 16:33)</a>:</h4>
<p>we then use this type when typechecking <code>{ 3 + 3 }</code> on its own</p>



<a name="225717251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717251">(Feb 09 2021 at 16:35)</a>:</h4>
<p>the painful parts are that we have to typeck the anonymous constant while we typecheck its parent, we use <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.WithOptConstParam.html">https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.WithOptConstParam.html</a> for that</p>



<a name="225717339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717339">(Feb 09 2021 at 16:35)</a>:</h4>
<p>to supply the expected type to <code>{ 3 + 3 }</code> without causing a cycle error by calling <code>typeck</code> for <code>foo</code> again</p>



<a name="225717501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717501">(Feb 09 2021 at 16:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> were you thinking about inline consts (<code>const { expr }</code>) here, were this kinda breaks down?</p>



<a name="225717557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717557">(Feb 09 2021 at 16:37)</a>:</h4>
<p>This is an example involving <code>min_const_generics</code> that works on stable?</p>



<a name="225717583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717583">(Feb 09 2021 at 16:37)</a>:</h4>
<p>yes</p>



<a name="225717603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717603">(Feb 09 2021 at 16:37)</a>:</h4>
<p>(ignoring that <code>array_windows</code> is unstable ^^)</p>



<a name="225717608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717608">(Feb 09 2021 at 16:37)</a>:</h4>
<p>I had kind of forgotten about <code>const { expr }</code> tbh</p>



<a name="225717719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717719">(Feb 09 2021 at 16:38)</a>:</h4>
<p>how does it breakdown with <code>const { }</code>?</p>



<a name="225717772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717772">(Feb 09 2021 at 16:38)</a>:</h4>
<p>the type of const blocks isn't related to any const parameter</p>



<a name="225717808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717808">(Feb 09 2021 at 16:39)</a>:</h4>
<p>so we would have to pass a type through <code>WithOptConstParam</code> instead of the param <code>DefId</code></p>



<a name="225717835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717835">(Feb 09 2021 at 16:39)</a>:</h4>
<p>I do recall that i've never like 1000% understood <code>WithOptConstParam</code></p>



<a name="225717868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717868">(Feb 09 2021 at 16:39)</a>:</h4>
<p>the same issue as <a href="https://github.com/rust-lang/project-const-generics/pull/3">https://github.com/rust-lang/project-const-generics/pull/3</a></p>



<a name="225717898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225717898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225717898">(Feb 09 2021 at 16:39)</a>:</h4>
<p>I'm assuming all of this breaks because we're trying to infer the generics of <code>array_windows</code> and <code>vec![...]</code> together?</p>



<a name="225718001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718001">(Feb 09 2021 at 16:40)</a>:</h4>
<p>What do we do currently and what assumptions break that makes that impossible?</p>



<a name="225718065"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718065" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718065">(Feb 09 2021 at 16:40)</a>:</h4>
<p><span class="user-mention silent" data-user-id="256313">Hameer Abbasi</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225717898">said</a>:</p>
<blockquote>
<p>I'm assuming all of this breaks because we're trying to infer the generics of <code>array_windows</code> and <code>vec![...]</code> together?</p>
</blockquote>
<p>the issue is that to typeck <code>foo</code> we have to typecheck anonymous constants which are used in <code>foo</code></p>



<a name="225718148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718148">(Feb 09 2021 at 16:41)</a>:</h4>
<p>as doing so relies on results from typeck <code>foo</code>, this would cause a cycle</p>



<a name="225718342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718342">(Feb 09 2021 at 16:42)</a>:</h4>
<p>I feel like <em>part</em> of the problem here -- <em>maybe</em> -- is our query system not being expressive enough</p>



<a name="225718431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718431">(Feb 09 2021 at 16:43)</a>:</h4>
<p>potentially, though I have no idea how we can extend it to fix this ^^</p>



<a name="225718456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718456">(Feb 09 2021 at 16:43)</a>:</h4>
<p>I have some thoughts</p>



<a name="225718482"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718482" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718482">(Feb 09 2021 at 16:43)</a>:</h4>
<p>but it's not really fundamental to the question at hand, we can come back to it</p>



<a name="225718770"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718770" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718770">(Feb 09 2021 at 16:45)</a>:</h4>
<p>I'm skimming this "design doc"</p>



<a name="225718792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718792">(Feb 09 2021 at 16:45)</a>:</h4>
<p>I'm going to have to drop off soon</p>



<a name="225718818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718818">(Feb 09 2021 at 16:45)</a>:</h4>
<p>this has been very instructional :)</p>



<a name="225718834"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718834" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718834">(Feb 09 2021 at 16:45)</a>:</h4>
<p>I realize we've not reached any <em>conclusions</em> <span class="user-mention" data-user-id="216206">@lcnr</span></p>



<a name="225718849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718849">(Feb 09 2021 at 16:45)</a>:</h4>
<p>I kind of want to let it sit in my head a bit</p>



<a name="225718875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718875">(Feb 09 2021 at 16:45)</a>:</h4>
<p>yeah, will have to continue from here next week ^^</p>



<a name="225718960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718960">(Feb 09 2021 at 16:46)</a>:</h4>
<p>I will print and read <a href="https://github.com/rust-lang/project-const-generics/pull/3/">https://github.com/rust-lang/project-const-generics/pull/3/</a></p>



<a name="225718984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225718984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225718984">(Feb 09 2021 at 16:46)</a>:</h4>
<p>i do have to admit i feel a bit less comfortable with option 2 and am slightly tempted to experiment with the first one</p>



<a name="225719014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719014">(Feb 09 2021 at 16:46)</a>:</h4>
<p>I prefer the first one conceptually--</p>



<a name="225719034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719034">(Feb 09 2021 at 16:46)</a>:</h4>
<p>I'm a bit uncertain about how to do it</p>



<a name="225719078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719078">(Feb 09 2021 at 16:47)</a>:</h4>
<p>I get a bit nervous when we have these elaborate cycle-prone setups</p>



<a name="225719120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719120">(Feb 09 2021 at 16:47)</a>:</h4>
<p>and I suspect we can make something "simple" that works pretty well for the first one in <em>practice</em></p>



<a name="225719158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719158">(Feb 09 2021 at 16:47)</a>:</h4>
<p>but I'm still tinkering a bit with what that means</p>



<a name="225719190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719190">(Feb 09 2021 at 16:47)</a>:</h4>
<p>I think I need to understand better the interplay between type check of the parent and the anonymous constant</p>



<a name="225719292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719292">(Feb 09 2021 at 16:48)</a>:</h4>
<p>heh I guess <a href="https://github.com/rust-lang/project-const-generics/issues/3">rust-lang/project-const-generics#3</a> is not very long</p>



<a name="225719310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719310">(Feb 09 2021 at 16:48)</a>:</h4>
<p>printing might be overkill :)</p>



<a name="225719502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719502">(Feb 09 2021 at 16:49)</a>:</h4>
<p>^^</p>



<a name="225719630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719630">(Feb 09 2021 at 16:50)</a>:</h4>
<p>well then, that's it for today, thanks for your time everyone <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span></p>



<a name="225719634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719634">(Feb 09 2021 at 16:50)</a>:</h4>
<p>^^ I'll try to do that too. :D</p>



<a name="225719723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719723">(Feb 09 2021 at 16:51)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> I'm going to try to partition some time later on to poke into the code a bit more</p>



<a name="225719735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719735">(Feb 09 2021 at 16:51)</a>:</h4>
<p>also, can someone look at <a href="https://github.com/rust-lang/project-const-generics/issues/1">rust-lang/project-const-generics#1</a> ^^</p>



<a name="225719746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719746">(Feb 09 2021 at 16:51)</a>:</h4>
<p><em>probably</em> Friday</p>



<a name="225719787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225719787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225719787">(Feb 09 2021 at 16:51)</a>:</h4>
<p>I'll tell you when in case you can be around</p>



<a name="225720047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225720047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225720047">(Feb 09 2021 at 16:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="216206">lcnr</span> <a href="#narrow/stream/260443-project-const-generics/topic/meeting.2009.2E02.2E2021/near/225719735">said</a>:</p>
<blockquote>
<p>also, can someone look at <a href="https://github.com/rust-lang/project-const-generics/issues/1">rust-lang/project-const-generics#1</a> ^^</p>
</blockquote>
<p>I didn't even spot there was a pull request, because I didn't watch the repo early enough: I can review this later today.</p>



<a name="225720111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225720111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Hameer Abbasi <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225720111">(Feb 09 2021 at 16:53)</a>:</h4>
<p>Thanks so much for entertaining me. <span aria-label="heart" class="emoji emoji-2764" role="img" title="heart">:heart:</span></p>



<a name="225720210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225720210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225720210">(Feb 09 2021 at 16:54)</a>:</h4>
<p>Thanks for running the meeting <span class="user-mention" data-user-id="216206">@lcnr</span>! I also want to take a better look at the code, so that I can follow along a bit more closely to these conversations and not just observe :)</p>



<a name="225720321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225720321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225720321">(Feb 09 2021 at 16:55)</a>:</h4>
<p>i echo that sentiment varkor lol</p>



<a name="225767890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225767890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225767890">(Feb 09 2021 at 22:33)</a>:</h4>
<p>renaming zulip topics seems to work a lot worse than expected <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="225767972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225767972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225767972">(Feb 09 2021 at 22:33)</a>:</h4>
<p>looks like I somehow managed to rip that topic in half or something? how did that happen</p>



<a name="225768202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225768202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225768202">(Feb 09 2021 at 22:35)</a>:</h4>
<p>ok, renaming it once more actually fixed everything I think?</p>



<a name="225768258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225768258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225768258">(Feb 09 2021 at 22:36)</a>:</h4>
<p>let's just not touch this anymore <span aria-label="sparkles" class="emoji emoji-2728" role="img" title="sparkles">:sparkles:</span></p>



<a name="225777989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/meeting%202021-02-09/near/225777989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/meeting.202021-02-09.html#225777989">(Feb 10 2021 at 00:19)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> renaming is actually on something approximating a post-by-post basis, but you can rename "this post and all the ones after it". That's why it worked when you retried.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>